Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Query by Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Query_by_Example"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Query_by_Example rootpage-Query_by_Example skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Query by Example</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><i><b>Query by Example</b></i> (<i><b>QBE</b></i>; <a href="Englische_Sprache" title="Englische Sprache">engl.</a>, „Abfrage anhand von Beispielen“) ist eine <a href="Relationale_Datenbank" title="Relationale Datenbank">relationale Datenbank</a><a href="Datenbanksprache" title="Datenbanksprache">-Abfragesprache</a>, die von Moshé M. Zloof bei <a href="IBM" title="IBM">IBM</a> parallel zu <i><a href="IBM_System_R" title="IBM System R">System&nbsp;R</a></i> entwickelt wurde. Sie beruht im Wesentlichen auf dem <a href="Kalk%C3%BCl_(Datenbank)#Bereichskalkül" title="Kalkül (Datenbank)">Bereichskalkül</a>. Dabei wird die Abfrage (<a href="Abfragesprache" title="Abfragesprache">Query</a>) nicht wie in <i>SQL</i> durch einen Text repräsentiert, sondern durch ein Tabellengerüst, das mit Spezial<a href="Editor_(Software)" title="Editor (Software)">editoren</a> bearbeitet werden kann. Diese grafische <a href="Abfragesprache" title="Abfragesprache">Abfragesprache</a> richtet sich speziell an Gelegenheits<a href="Benutzer" title="Benutzer">benutzer</a>, die mit SQL und anderen komplexen Abfragen wenig anfangen können.
</p>

<div class="mw-heading mw-heading2"><h2 id="Verwendung">Verwendung</h2></div>
<p>QBE-ähnliche Schnittstellen finden sich noch heute als grafische Frontends für Datenbanksysteme.
</p><p>Die QBE-Schnittstelle findet man beispielsweise als eine von mehreren Abfragefunktionen in den DOS-Datenbankprogrammen <a href="DBASE" title="DBASE">dBASE</a>-IV und -V, welche 1988–1995 stark verbreitet waren, verwirklicht.
</p><p>QBE ist <a href="Relationale_Algebra" title="Relationale Algebra"><i>relational vollständig</i></a>, jedoch ist für manche Anfragen eine Folge von QBE-Anfragen nötig, daher ist es nicht <i>streng relational vollständig</i>.
</p><p>Bei der Suche in <a href="Suchmaschine" title="Suchmaschine">Suchmaschinen</a> meint man mit Query by Example die Suche nach Dokumenten, die eine Mindestübereinstimmung zu einem selektierten Beispiel-Dokument aufweisen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Prinzipien">Prinzipien</h2></div>
<p>Das System stellt zunächst ein Tabellengerüst (auch: -skelett) zur Verfügung, das durch den Benutzer mit <i>Beispielelementen</i>, <i>Vergleichsoperationen</i> und <i>Kommandos</i> gefüllt werden kann. Für komplexere Bedingungen gibt es eine spezielle Tabelle, die <i>condition box</i>. Weiterhin können Aggregatfunktionen verwendet werden. Zeilen können insgesamt auch negiert werden.
</p><p>Beispielelemente beginnen mit „_“ und dienen der Verknüpfung von Tabellen (Join) und der Angabe von Bedingungen in der condition box. Vergleichsoperationen werden in einer Zelle angegeben, zum Beispiel vergleicht der Eintrag „&gt;7“ das Attribut entsprechend. Die Kommandos sind P., I. und D. und stehen für print, insert und delete. I. und D. werden immer in der ersten Spalte angegeben, P. kann in der ersten Spalte stehen, um die gesamte Zeile auszugeben, oder bei einem oder mehreren Attributen, um nur diese Attribute auszugeben – eine negierte Zeile darf allerdings kein P. enthalten.
</p>
<div class="mw-heading mw-heading2"><h2 id="Beispiele">Beispiele</h2></div>
<p>Im System seien diese Relationen vorhanden:
</p>
<table class="wikitable">

<tbody><tr>
<td>KUNDE
</td>
<td>(kdnr, kname, adresse, ort)
</td></tr>
<tr>
<td>AUFTRAG
</td>
<td>(auftragsnr, kdnr, warennr, menge)
</td></tr>
<tr>
<td>WARE
</td>
<td>(warennr, wname, wpreis)
</td></tr></tbody></table>
<p>In QBE stellt man dann Anfragen durch Befüllen der Tabellengerüste.
</p>
<table class="wikitable">
<caption>Orte, in denen es Kunden gibt
</caption>
<tbody><tr>
<th>KUNDE</th>
<th>kdnr</th>
<th>kname</th>
<th>adresse</th>
<th>ort
</th></tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>P.
</td></tr></tbody></table>
<table class="wikitable">
<caption>Alle Kunden aus Bremen
</caption>
<tbody><tr>
<th>KUNDE</th>
<th>kdnr</th>
<th>kname</th>
<th>adresse</th>
<th>ort
</th></tr>
<tr>
<td>P.</td>
<td></td>
<td></td>
<td></td>
<td>='Bremen'
</td></tr></tbody></table>
<p>An diesen Beispielen sieht man, wie die Projektion (Ausblenden von Spalten) und die Selektion (Ausblenden von Zeilen) umgesetzt werden. Zwei Anfragen, die Verknüpfungen benutzen, und Beispielelemente verwenden:
</p>
<table class="toptextcells" cellpadding="8">

<caption>Kunden mit Bestellung
</caption>
<tbody><tr>
<td>
<table class="wikitable">
<tbody><tr>
<th>KUNDE</th>
<th>kdnr</th>
<th>kname</th>
<th>adresse</th>
<th>ort
</th></tr>
<tr>
<td>P.</td>
<td>_kdnr</td>
<td></td>
<td></td>
<td>
</td></tr></tbody></table>
</td>
<td>
<table class="wikitable">
<tbody><tr>
<th>AUFTRAG</th>
<th>auftragsnr</th>
<th>kdnr</th>
<th>warennr</th>
<th>menge
</th></tr>
<tr>
<td></td>
<td></td>
<td>_kdnr</td>
<td></td>
<td>
</td></tr></tbody></table>
</td></tr></tbody></table>
<p>Das nächste Beispiel zeigt die Verwendung negierter Zeilen:
</p>
<table class="toptextcells" cellpadding="8">

<caption>Waren ohne Bestellung
</caption>
<tbody><tr>
<td>
<table class="wikitable">

<tbody><tr>
<th>WARE</th>
<th>warennr</th>
<th>wname</th>
<th>wpreis
</th></tr>
<tr>
<td>P.</td>
<td>_warennr</td>
<td></td>
<td>
</td></tr></tbody></table>
</td>
<td>
<table class="wikitable">

<tbody><tr>
<th>AUFTRAG</th>
<th>auftragsnr</th>
<th>kdnr</th>
<th>warennr</th>
<th>menge
</th></tr>
<tr>
<td>¬</td>
<td></td>
<td></td>
<td>_warennr</td>
<td>
</td></tr></tbody></table>
</td></tr></tbody></table>
<p>Das Kreuzprodukt zweier Relationen würde man wie folgt bilden:
</p>
<table class="toptextcells" cellpadding="8">

<caption>Einträge in Tabellengerüste
</caption>
<tbody><tr>
<td>
<table class="wikitable">

<tbody><tr>
<th>WARE</th>
<th>warennr</th>
<th>wname</th>
<th>wpreis
</th></tr>
<tr>
<td></td>
<td>_warennr</td>
<td>_wname</td>
<td>_wpreis
</td></tr></tbody></table>
</td>
<td>
<table class="wikitable">

<tbody><tr>
<th>AUFTRAG</th>
<th>auftragsnr</th>
<th>kdnr</th>
<th>warennr</th>
<th>menge
</th></tr>
<tr>
<td></td>
<td>_auftragsnr</td>
<td>_kdnr</td>
<td>_warennr2</td>
<td>_menge
</td></tr></tbody></table>
</td></tr></tbody></table>
<table class="wikitable">
<caption>Neues Tabellengerüst W&nbsp;×&nbsp;A
</caption>
<tbody><tr>
<th>W&nbsp;×&nbsp;A</th>
<th>warennr</th>
<th>wname</th>
<th>wpreis</th>
<th>auftragsnr</th>
<th>kdnr</th>
<th>warennr</th>
<th>menge
</th></tr>
<tr>
<td>P.</td>
<td>_warennr</td>
<td>_wname</td>
<td>_wpreis</td>
<td>_auftragsnr</td>
<td>_kdnr</td>
<td>_warennr2</td>
<td>_menge
</td></tr></tbody></table>
<p>Für die Umsetzung der Mengenoperationen der relationalen Algebra sind mehrere Anweisungen notwendig. Hätte man zwei Relationen mit dem KUNDEN-Schema, KUNDE und BETRÜGER, könnte man alle möglichen AUFTRAGGEBER durch eine Vereinigung der beiden Relationen erhalten. Dies ist nur mit zwei Operationen möglich, nicht mit einer einzigen:
</p>
<table class="wikitable">

<tbody><tr>
<th>KUNDE</th>
<th>kdnr</th>
<th>kname</th>
<th>adresse</th>
<th>ort
</th></tr>
<tr>
<td></td>
<td>_kdnr</td>
<td>_kname</td>
<td>_adresse</td>
<td>_ort
</td></tr></tbody></table>
<table class="wikitable">
<caption>Neues Tabellengerüst
</caption>
<tbody><tr>
<th>AUFTRAGGEBER</th>
<th>kdnr</th>
<th>kname</th>
<th>adresse</th>
<th>ort
</th></tr>
<tr>
<td>I.</td>
<td>_kdnr</td>
<td>_kname</td>
<td>_adresse</td>
<td>_ort
</td></tr></tbody></table>
<p>Es werden zuerst die Werte der KUNDE-Relation in eine neue Relation eingefügt. Danach, in einer zweiten Operation, kommen die BETRÜGER dazu:
</p>
<table class="wikitable">

<tbody><tr>
<th>BETRÜGER</th>
<th>kdnr</th>
<th>kname</th>
<th>adresse</th>
<th>ort
</th></tr>
<tr>
<td></td>
<td>_kdnr</td>
<td>_kname</td>
<td>_adresse</td>
<td>_ort
</td></tr></tbody></table>
<table class="wikitable">

<tbody><tr>
<th>AUFTRAGGEBER</th>
<th>kdnr</th>
<th>kname</th>
<th>adresse</th>
<th>ort
</th></tr>
<tr>
<td>I.</td>
<td>_kdnr</td>
<td>_kname</td>
<td>_adresse</td>
<td>_ort
</td></tr></tbody></table>
<p>Die neue Relation enthält jetzt KUNDE ∪ BETRÜGER.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><span class="cite">Ramakrishnan, Raghu; Gehrke, Johannes: <a rel="nofollow" class="external text" href="https://pages.cs.wisc.edu/~dbbook/openAccess/thirdEdition/qbe.pdf"><i>Query by Example.</i></a> (PDF; 140&nbsp;kB) In: <i>Database Management Systems (3rd ed.).</i> www.cs.wisc.edu,<span class="Abrufdatum"> abgerufen am 15.&nbsp;Oktober 2011</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AQuery+by+Example&amp;rft.title=Query+by+Example&amp;rft.description=Query+by+Example&amp;rft.identifier=https%3A%2F%2Fpages.cs.wisc.edu%2F%7Edbbook%2FopenAccess%2FthirdEdition%2Fqbe.pdf&amp;rft.creator=Ramakrishnan%2C+Raghu%3B+Gehrke%2C+Johannes&amp;rft.publisher=www.cs.wisc.edu&amp;rft.date=&amp;rft.language=en">&nbsp;</span></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2024-08-28" href="https://de.wikipedia.org/wiki/?title=Query_by_Example&amp;oldid=248117946">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>